As an increasing number of applications and services are being made available over networks such as the Internet, an increasing number of content, application, and/or service providers are turning to technologies such as resource sharing or “cloud computing.” Cloud computing, in general, is an approach to providing access to electronic resources through services, such as Web services, where the hardware and/or software used to support those services is dynamically scalable to meet the needs of the services at any given time. A user or customer can obtain access to various services through the cloud, or across at least one network, and thus does not have to purchase and maintain the hardware associated with the services.
In order to spread the workloads of various customers across a set of resources, approaches such as load balancing are used to direct certain portions of the workloads to different resources, or sets of resources. These workloads can vary significantly in size and type, however, such that certain workloads can require significantly more resource capacity than others. If certain customers are associated with certain resources, and those customers have very resource intensive workloads, the resources associated with those customers might perform many more operations than other resources associated with other customers. While this might not be significant for certain types of resources, other types of resources such as NAND flash memory will wear out after a certain amount of usage. Significant variations in the distributions in workload thus can cause some of these resources to wear out before others, which can cause difficulties in the maintenance of a set of resources and the processing of customer workloads.